package com.dagene.weixin.util;

import net.sf.json.JSONObject;

import com.dagene.weixin.bean.AccessToken;

/**
 * 微信群发
 * 
 * @author wangjl
 * 
 */
public class MassUtil {
	HttpUtil httpUtil = new HttpUtil();
	String httputilUrl = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN";
	AccessToken at = null;

	public MassUtil() {
		at = httpUtil.getAccessToken(Constants.APPID, Constants.APPSECRET);
		httputilUrl = httputilUrl.replace("ACCESS_TOKEN", at.getToken());
	}

	/**
	 * 1、使用is_to_all为true且成功群发，会使得此次群发进入历史消息列表。
	 * 2、为防止异常，认证订阅号在一天内，只能使用is_to_all为true进行群发一次
	 * ，或者在公众平台官网群发（不管本次群发是对全体还是对某个分组）一次。以避免一天内有2条群发进入历史消息列表。
	 * 3、类似地，服务号在一个月内，使用is_to_all为true群发的次数
	 * ，加上公众平台官网群发（不管本次群发是对全体还是对某个分组）的次数，最多只能是4次。
	 * 4、设置is_to_all为false时是可以多次群发的，但每个用户只会收到最多4条，且这些群发不会进入历史消息列表。
	 * 
	 * 
	 * { "filter":{ "is_to_all":false, "tag_id":2 }, "mpnews":{
	 * "media_id":"123dsdajkasd231jhksad" }, "msgtype":"mpnews",
	 * "send_ignore_reprint":0 }
	 * 
	 * @param mediaId
	 * @return
	 */
	public JSONObject massArticles(String mediaId) {
		String jsonMessage = "{\"filter\" : {\"is_to_all\" : true}, "
				+ "\"mpnews\" : {\"media_id\" : \"" + mediaId + "\"},"
				+ "\"msgtype\" : \"mpnews\", \"send_ignore_reprint\":0}";
		JSONObject jsonObject = new HttpUtil().httpPostRequest(httputilUrl,
				"POST", jsonMessage);
		System.out.println("mass_result: " + jsonObject);
		// mass_result:
		// {"errcode":0,"errmsg":"send job submission success","msg_id":1000000001,"msg_data_id":2247483656}
		return jsonObject;
	}
}
